import java.util.Arrays;

/**
 * @ClassName SearchOne
 * @Description 给定一个非空整数数组，
 * 除了某个元素只出现一次以外，
 * 其余每个元素均出现两次。找出那个只出现了一次的元素。
 * @Author 李明忠
 * @Date 2025/5/20 21:35
 * @Version 1.0
 */
public class SearchOne {
    private static int searchOne(int[] arr) {
        //首先对原数组进行排序
        Arrays.sort(arr);
        //用于存储只出现一次的那一个数
        int temp = 0;
        //创建辅助数组，数组长度为原数组中最大的元素值+1
        int[] array = new int[arr[arr.length - 1] + 1];
        //遍历原数组，对出现的数进行计数
        for (int i = 0; i < arr.length; i++) {
            array[arr[i]] ++;
        }
        //只出现一次的下标就是原数组中只出现一次的元素值
        for (int i = 0; i < array.length; i++) {
            if (array[i] == 1) {
                temp = i;
            }
        }
        return temp;
    }
    public static void main(String[] args) {
        int[] arr = {4,1,2,1,2};
        int tmp = searchOne(arr);
        System.out.println(tmp);
    }
}
